Pointing device reporting utilizing scaling

ABSTRACT

A method and a pointing device are provided for reporting a movement amount of an operation instrumentality of the pointing device. A first value representing the movement amount in a first direction is examined. Whether scaling should be performed is determined based on the first value. When it is determined that scaling is to be performed, the first value is scaled by a first scaling factor and a first scaling indicator is set to indicate that the first value is scaled by the first scaling factor. Reporting information is then output, including the first value if scaling has not been performed, and when scaling has been performed, the reporting information includes the scaled first value and the first scaling indicator. The first value may be scaled by one of a plurality of scaling factors selected based on the first value.

FIELD OF THE INVENTION

[0001] The present invention relates to pointing devices used withcomputers and other data input devices, and methods that may be used toreport a change in position of an operation instrumentality of thepointing device. More specifically, the invention relates to a formatfor reporting the change in position of an operation instrumentality ofa pointing device.

BACKGROUND OF THE INVENTION

[0002] Known mechanical computer mice have been specified to have aresolution of 400 dots per inch (dpi) and a maximum speed of 5 inchesper second (ips), and may be tested before shipping to 7 ips. Someoptical sensors within optical computer mice may be specified as havingthe same resolution as mechanical computer mice, but are capable of muchhigher speeds, such as speeds greater than 50 ips. In prior computermice (both mechanical and optical), the resolution and speed limitsimply that no more than 7 bits of magnitude are needed to transmit thenumber of dots (Δx, Δy) counted during sampling intervals. For example,values from 0 through 127 can be represented in a 7 bit value and valuesin the range of −128 through 127 can be represented by atwo's-complement value in 8 bits (a 7 bit magnitude and a sign bit).

[0003] One particular prior art optical wireless computer mouse appearsto send an 8 bit signed value (using a resolution of 800 dpi),indicating an amount of movement in each of a horizontal and verticaldirection, via a Radio Frequency (RF) packet every 20 milliseconds. Thiswould yield a maximum mouse speed of about 8 ips. (50 RF packets persecond (20 millisecond time intervals)×127 (maximum signed 8 bitvalue)×0.00125 inches per dot (800 dpi resolution)=7.9375 inches persecond). Using a resolution of 400 dpi would yield a maximum speed ofabout 16 ips; however, the maximum tracking speed that a low speed USBdevice can support is 36 ips (at a 400 dpi resolution).

[0004] A ten-fold increase in speed, as may be attained by an opticalmouse, means that the Δx, Δy data could have a magnitude up to ten timeslarger than the magnitude for prior art mechanical mice. Therefore, 4additional bits, or 11 bits would be required to report such a magnitudeand 12 bits would be required to report the 11 bit magnitude and a signbit. Since the smallest unit of addressable memory is a byte, anadditional byte of memory would be required to accommodate theadditional bits for reporting such a large magnitude. Given thatavailable memory, such as Random Access Memory (RAM), is limited, ameans for reporting such a large magnitude without using additional bitsto represent the magnitude would be desirable.

SUMMARY OF THE INVENTION

[0005] The present invention addresses the above situation by providinga pointing device and a method for reporting a movement amount of anoperation instrumentality of a pointing device, such that fewer bits maybe used to report the movement amount of the operation instrumentalitythan when using a conventional reporting method.

[0006] In a first aspect of the invention, a method is provided forreporting a movement amount of an operation instrumentality of apointing device. A first value representing the movement amount in afirst direction is examined. A determination is made as to whetherscaling of the first value is to be performed based on the first value.When scaling is to be performed, the first value is scaled by the firstscaling factor and a first scaling indicator is set to indicate that thefirst value is scaled by the first scaling factor. Reporting informationis then output. If no scaling has been performed, the reportinginformation includes the first value. If scaling has been performed, thereporting information includes the scaled first value and the firstscaling indicator.

[0007] In a second aspect of the invention, a pointing device isprovided. The pointing device includes a tracking engine, determiningmeans, a scaler, and a position reporter. The tracking engine isconfigured to track a movement amount of an operation instrumentality ofthe pointing device in a first direction, and to indicate the movementamount as a first value. The determining means is configured to examinethe first value to determine whether scaling of the first value shouldbe performed based on the first value. The scaler is configured to scalethe first value by a first scaling factor when the determining meansdetermines that scaling is to be performed. The position reporter isconfigured to report information including the first value if no scalinghas been performed, and to report information including the scaled firstvalue and the first scaling indicator, corresponding to the firstscaling factor, if scaling has been performed.

[0008] In a third aspect of the invention, a method is provided forreporting a movement amount of an operation instrumentality of apointing device. A first value representing the movement amount in afirst direction is examined. The first value is checked to determinewhether the first value can be represented by a first predeterminednumber of bits. When the first value cannot be represented by the firstpredetermined number of bits, the first value is scaled by a firstscaling factor and a first scaling indicator is set to indicate that thefirst value is scaled. Reporting information is then output. If noscaling has been performed, the reporting information includes the firstvalue. If scaling has been performed, the reporting information includesthe scaled first value and the first scaling indicator.

[0009] In a fourth aspect of the invention, a method is provided forreporting a movement amount of an operation instrumentality of apointing device. A first value representing the movement amount in afirst direction is examined. The first value is checked to determinewhether the first value can be represented by a first predeterminednumber of bits. When the first value can be represented by the firstpredetermined number of bits, a first scaling indicator is set toindicate that the first value is unscaled. When the first value cannotbe represented by the first predetermined number of bits, the firstvalue is checked to determine whether the first value can be representedby a second predetermined number of bits, which is different from thefirst predetermined number of bits. When the first value can berepresented by the second predetermined number of bits, the first valueis scaled by a first scaling factor and a first scaling indicator is setto indicate that the first value is scaled by the first scaling factor.When the first value cannot be represented by the second predeterminednumber of bits, the first value is checked to determine whether thefirst value can be represented by a third predetermined number of bits,which is different from the first and the second predetermined numbersof bits. When the first value can be represented by the thirdpredetermined number of bits, the first value is scaled by a secondscaling factor and the first scaling indicator is set to indicate thatthe first value is scaled by the second scaling factor. Reportinginformation is then output. If no scaling has been performed, thereporting information includes the first value. If scaling has beenperformed, the reporting information includes the scaled first value andthe first scaling indicator.

[0010] In a fifth aspect of the invention, a pointing device isprovided. The pointing device includes a tracking engine, determiningmeans, a scaler, and a position reporter. The tracking engine isconfigured to track a movement amount of an operation instrumentality ofthe pointing device in a first direction, and to indicate the movementamount as a first value. The determining means is configured todetermine whether the first value can be represented by a firstpredetermined number of bits. When the determining means determines thatthe first value can be represented by the first predetermined number ofbits, a first scaling indicator is set to indicate that the first valueis unscaled. When the first value cannot be represented by the firstpredetermined number of bits, the determining means determines whetherthe first value can be represented by a second predetermined number ofbits, which is different from the first predetermined number of bits.When the first value can be represented by the second predeterminednumber of bits, the scaler is configured to scale the first value by afirst scaling factor and to set a first scaling indicator to indicatethat the first value is scaled by the first scaling factor. When thedetermining means determines that the first value cannot be representedby the second predetermined number of bits, the determining meansdetermines whether the first value can be represented by a thirdpredetermined number of bits, which is different from the first and thesecond predetermined numbers of bits. When the determining meansdetermines that the first value can be represented by the thirdpredetermined number of bits, the scaler is configured to scale thefirst value by a second scaling factor, and to set the first scalingindicator to indicate that the first value is scaled by the secondscaling factor. The position reporter is configured to reportinformation including the first value if no scaling has been performed,and to report information including the scaled first value and the firstscaling indicator, if scaling has been performed.

[0011] In a sixth aspect of the invention, a pointing device having atracking engine, determining means, a scaler and a position reporter isprovided. The tracking engine is configured to track a movement amountof an operation instrumentality of the pointing device in a firstdirection, and to indicate the movement amount as a first value. Thedetermining means is configured to determine the smallest of a first,second and third ranges of values into which the first value falls, andto set a first scaling indicator to indicate scaling by a first selectedscaling factor based on the determined range if the first value fallsinto one of the first, the second and the third ranges. A scaler isconfigured to scale the first value by the first selected scalingfactor. The position reporter is configured to report informationincluding the first value if no scaling has been performed, and toreport information including the scaled first value and the firstscaling indicator, if scaling has been performed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The present invention is described with respect to theaccompanying figures, in which like reference numerals identify likeelements, and in which:

[0013]FIG. 1 is a block diagram of a pointing device representing anembodiment of the invention;

[0014]FIG. 2 is a functional block diagram of the pointing deviceillustrated in FIG. 1;

[0015]FIG. 3 illustrates an embodiment of the position reporter shown inFIG. 2;

[0016]FIG. 4 shows a portion of a reporting format of an embodiment ofthe invention;

[0017]FIGS. 5A and 5B are respective portions of a flowchartillustrating processing in an embodiment of the invention; and

[0018]FIGS. 6A and 6B are respective portions of a flowchartillustrating processing in another embodiment of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0019] Referring to the block diagram of FIG. 1, a computer pointingdevice 10 includes a tracking engine, which tracks an amount of movementof an operation instrumentality of (or associated with) a pointingdevice. The operation instrumentality may be, e.g., a mouse body itselfor a movable member thereof such as a ball, a track ball in a track balldevice, a pen in a pen-based input device or a user's finger along atouch pad or the like. The tracked amount of movement of the operationinstrumentality of the pointing device is used to determine a positionof a pointer appearing on a display. A processor 14 may periodicallypoll tracking engine 12 to receive values representing a change inposition of the operation instrumentality. The values may represent achange in position of a number of dots, wherein a typical resolution is400 dots per inch (dpi). In this embodiment of the invention, two valuesare reported, XCount, representing a change in position in a horizontaldirection and YCount, representing a change in position in a verticaldirection. Processor 14 may be connected via a bus to computer memory,such as Read Only Memory 16 (ROM) and Random Access Memory 18 (RAM).Processor 14 provides the values representing the change in thehorizontal and the vertical positions to position reporter 20 forreporting.

[0020] Referring to the functional block diagram of FIG. 2, trackingengine 12 may receive polls from comparator 24 and supplies comparator24 with values representing a change in position of the operationinstrumentality of the pointing device. In this embodiment, the valuesrepresent a change in a horizontal and a vertical direction. Comparator24 examines the values representing an amount of movement in each of thetwo directions and determines whether each of the values can berepresented in a predetermined number of bits. For example, if eightbits are used to represent a signed value in a two's complementrepresentation, the eight bits may represent a value in the range from−128 to +127. If either of the two values, representing a change inmovement in the two directions, respectively, can be represented in aneight bit signed representation, then the values will be provided to aposition reporter 20 for reporting to, for example, a personal computer.If either of the two values cannot be represented by the predeterminednumber of bits, for example, eight bits, for a signed representation,then the respective value will be scaled (e.g., divided) by a scalingfactor, such as, for example, four, and a scaling indicator will be setto indicate that the reported value has been scaled. The values and thescaling factors are then provided to position reporter 20 for reporting.

[0021]FIG. 3 shows an implementation of position reporter 20 in anembodiment of the invention. In this embodiment, the pointing device isa wireless pointing device. The wireless pointing device includes an RFtransmitter 30 and antenna 32 for transmitting position reports to, forexample, a personal computer having an RF receiver.

[0022]FIG. 4 shows a portion of a reporting packet for reporting thechange in position in each of the two directions. RFPacket [X] comprisesan eight bit value including bits X0 through X6 and XS and similarly,RFPacket [Y] includes eight bits Y0 through Y6 and YS. Each of theseeight bit values can represent a two's complement number in a range from−128 to +127. Flags ScalingFlag[X] and ScalingFlag[Y] are flags indicatewhether the respective values in RFPacket [X] and RFPacket [Y] have beenscaled.

[0023] Referring now to the flowchart of FIGS. 5A and 5B, a method of anembodiment of the invention is explained. In this embodiment two typesof displacement are reported, the actual displacement and ¼ of theactual displacement. This effectively reduces the exponent field,corresponding to the scaling flag or indicator, to a single bit, whichfurther saves space in the resulting RF packet, while maintainingaccuracy at low to medium mouse speeds. In this embodiment, the pointingdevice accumulates motion displacements from tracking engine 12 into 16bit accumulators. At P500, comparator 24 polls tracking engine 12 forvalues, for example, ΔX and ΔY, representing an amount of movement ofthe operation instrumentality in each of two directions.

[0024] At P502, a check is made to determine whether there is any newdata to report. This can be accomplished, for example, by determiningwhether either of ΔX or ΔY is non-zero. If ΔX or ΔY is non-zero, thenthere is new data to report and the process continues with step P504.Otherwise the process proceeds to step P500 to poll the tracking engineagain.

[0025] At P504, comparator 24 accumulates a respective value for each ofthe two reported values into the respective 16 bit accumulators. Forexample, a count, XCount is determined by adding a current value ofXCount to ΔX to provide a new value of XCount and a count, YCount, isdetermined by adding a current value of YCount to ΔY to provide a newvalue of YCount.

[0026] P506 is performed to determine whether the value of XCount can berepresented by a predetermined number of bits. In this embodiment,determination is made as to whether the value of XCount can berepresented in an eight bit two's complement value. Thus, it isdetermined whether the value XCount is in a range of −128 to +127. IfXCount is within this range, then at P508, the value of XCount is notscaled, but is placed in a reporting packet and a scaling flag is resetto zero. That is, the unscaled mantissa is reported with an exponent(scaling flag) indicating that the mantissa reflects the actual motiondisplacement.

[0027] If at P506, comparator 24 determines that the value of XCount isnot within the range of −128 through +127, then XCount is divided by ascaling factor, for example, four. That is, XCount is shifted to theright by two bits (causing the least significant two bits to be dropped)and the shifted value of XCount is then placed in a reporting packet.The scaling flag, ScalingFlag[X], is set to one to indicate that thereported XCount value has been scaled. That is, the scaled mantissa(approximately ½ the motion displacement) is reported with an exponent(scaling flag) indicating that the mantissa reflects ¼ of the actualmotion displacement. Some accuracy may be lost (note that the two leastsignificant bits are dropped during the shifting operation), but this isinsignificant when the operation instrumentality of the pointing deviceindicates high-speed motion displacement.

[0028] At P512, the comparator 24 determines whether the value of YCountcan be represented by the predetermined number of bits. That is, thecomparator determines whether −128≦YCount≦127, in this embodiment. IfYCount is within this range, then YCount is placed in the reportingpacket and the scaling flag, ScalingFlag[Y], is reset to zero at P514.That is, the unscaled mantissa is reported with an exponent (scalingflag) indicating that the mantissa reflects the actual motiondisplacement. Otherwise, the value in YCount is shifted to the right bytwo bits (causing the least significant two bits to be dropped), ordivided by four, and placed in the reporting packet and the scalingflag, ScalingFlag[Y], set to one to indicate that the value of YCount inthe reporting packet is scaled. That is, the scaled mantissa(approximately ¼ the motion displacement) is reported with an exponent(scaling flag) indicating that the mantissa reflects ¼ of the actualmotion displacement.

[0029] At P518, the reporting packet is sent to, for example, an RFreceiver associated with a computer, for example, a personal computer.

[0030] The following example shows how values of XCount and YCount maybe reported in the above embodiment of the invention. For example,suppose that the values to be reported are an XCount value of 345 and aYCount value of 46. Because XCount is not within the range of −128through +127, the value 345 will be shifted to the right by two bits, ordivided by four, which produces the value 86. The scaling flagassociated with X, ScalingFlag[X] is then set to one to indicate thatthe reported value of XCount has been scaled. As mentioned above, whilea loss of precision may occur when performing scaling, the loss isgenerally not significant when moving a pointing device at high speed.

[0031] In the example, the value for YCount is 46, which is within therange of −128 through +127. Therefore, the value of YCount would bereported without performing scaling and the scaling flag associated withYCount, ScalingFlag[Y], would be reset to zero to indicate that noscaling of YCount was performed.

[0032] Referring now to the flowchart of FIGS. 6A and 6B, a method ofanother embodiment of the invention is explained. This embodiment usesone of 4 different exponents with a 6 bit displacement value. One offour scaling factors, corresponding to one of four exponents, may beselected for scaling the XCount value and the YCount value. The fourscaling factors may be, for example, 0 through 3, corresponding toexponents 2⁰, 2¹, 2² and 2⁴, respectively.

[0033] Steps P600 through P604 correspond to steps P500 through P504,respectively, and therefore, will not be discussed further.

[0034] At P606, the value of XCount is examined to determine whether itwill fit in a first predetermined number of bits, for example, a six bitsigned two's complement number. That is, XCount is checked to determinewhether it is within a range of −32 to +31. If the value of XCount fallswithin this range, then the value of XCount will be copied into thereporting packet and the scaling flag corresponding to XCount,ScalingFlag[X], will be set to zero indicating no scaling. That is, theunscaled mantissa is reported with a scaling factor of 0, indicating anexponent of 2⁰.

[0035] If, at P606, comparator 24 determines that XCount does not fallwithin the range of −32 to +31, then at P610, a check will be made todetermine whether XCount can fit into a second predetermined number ofbits. That is, whether XCount will fit into a seven bit two's complementnumber. Therefore, XCount is checked to determine whether it is in arange from −64 through +63. If it is within this range, then at P612,the value of XCount will be shifted to the right by one bit (droppingthe least significant bit), effectively dividing XCount by two andplacing the shifted value of XCount in a reporting packet. The scalingflag, ScalingFlax[X] will be set to one indicating that the value ofXCount has been scaled. That is, the scaling flag, corresponding to anexponent of 2 ¹, indicates that the mantissa has been scaled to ½ of itsoriginal value.

[0036] If, at step P610, the comparator 24 determines that XCount doesnot fall within the range of −64 through +63, at P614, a determinationwill be made as to whether XCount can fit within a third predeterminednumber of bits. That is, in this embodiment, whether XCount can fit intoan eight bit two's complement number. Therefore, XCount is checked todetermine whether it is in a range from −128 to +127. If it is withinthis range, then P616 will be performed to shift the value of XCount tothe right by two bit positions (causing the least significant two bitsto be dropped), effectively dividing XCount by four and placing theshifted value of XCount in the reporting packet. The scaling factor forXCount, ScalingFactor[X], will be set to two, corresponding to anexponent of 2², and indicates that the mantissa has been scaled to ¼ ofits original value.

[0037] If, at step P614, the comparator 24 determines that XCount doesnot fall in the range of −128 to +127, then P618 will be performed toshift the value of XCount to the right by four bit positions (causingthe least significant four bits to be dropped), effectively dividingXCount by sixteen and placing the shifted value of XCount in thereporting packet. The scaling factor for XCount, ScalingFactor[X], willbe set to three, corresponding to an exponent of 2⁴, and indicates thatthe mantissa has been scaled to {fraction (1/16)} of its original value.

[0038] At P620, the value of YCount is examined to determine whether itwill fit in a first predetermined number of bits, for example, a six bitsigned two's complement number. That is, YCount is checked to determinewhether it is within a range of −32 to +31. If the value of YCount fallswithin this range, then the value of YCount will be copied into thereporting packet and the scaling flag corresponding to YCount,ScalingFlag[Y], will be set to zero indicating no scaling. That is, theunscaled mantissa is reported with a scaling factor of 0, indicating anexponent of 2⁰.

[0039] If, at P620, comparator 24 determines that YCount does not fallwithin the range of −32 to +31, then at P624, a check will be made todetermine whether YCount can fit into a second predetermined number ofbits. That is, whether YCount will fit into a seven bit twos complementnumber. Therefore, YCount is checked to determine whether it is in arange from −64 through +63. If it is within this range, then at P626,the value of YCount will be shifted to the right by one bit (droppingthe least significant bit), effectively dividing YCount by two andplacing the shifted value of YCount in a reporting packet. The scalingflag, ScalingFlag[Y] will be set to one indicating that the value ofYCount has been scaled. That is, the scaling flag corresponds to anexponent of 2¹ and indicates that mantissa has been scaled to ½ of itsoriginal value.

[0040] If, at step P624, the comparator 24 determines that YCount doesnot fall within the range of −64 through +63, at P614, a determinationwill be made as to whether YCount can fit within a third predeterminednumber of bits. That is, in this embodiment, whether YCount can fit intoan eight bit two's complement number. Therefore, YCount is checked todetermine whether it is in a range from −128 to +127. If it is withinthis range, then P629 will be performed to shift the value of YCount tothe right by two bit positions (causing the least significant two bitsto be dropped), effectively dividing YCount by four and placing theshifted value of YCount in the reporting packet. The scaling factor forYCount, ScalingFactor[Y], will be set to two, corresponding to anexponent of 2², and indicates that the mantissa has been scaled to ¼ ofits original value.

[0041] If, at step P628, the comparator 24 determines that YCount doesnot fall in the range of −128 to +127, then, at P630 will be performedto shift the value of YCount to the right by four bit positions (causingthe least significant four bits to be dropped), effectively dividingYCount by sixteen and placing the shifted value of YCount in thereporting packet. The scaling factor for YCount, ScalingFactor[Y], willbe set to three, corresponding to an exponent of 2⁴, and indicates thatthe mantissa has been scaled to {fraction (1/16)} of its original value.

[0042] At P632, the reporting packet is sent to, for example, an RFreceiver associated with a computer, for example, a personal computer.

[0043] The embodiment of FIGS. 5A and 5B may use, for example, 8 bitsfor the signed displacement or mantissa and 1 bit for the scaling flagor exponent. The embodiment of FIGS. 6A and 6B may use, for example, 6bits for the signed displacement or mantissa and 2 bits for the scalingflag or exponent. Thus, in the latter embodiment, one fewer bit, 8 bits,may be used as compared to the former embodiment's use of 9 bits toreport a change of position in a direction. Of course, other numbers ofbits may be used for the signed displacement and the scaling flag. Theembodiments of FIGS. 5A and 5B and FIGS. 6A and 6B do not lose anyaccuracy at lower speeds, although less accuracy may be achieved athigher speeds by the embodiment of FIGS. 6A and 6B as compared with theembodiment of FIGS. 5A and 5B.

[0044] The above embodiments use scaling factors of two, four andsixteen. The invention is not limited to these specific scaling factors.Other scaling factors may also be used.

[0045] In the above embodiments, the comparator may include processor 14and instructions in ROM and/or RAM for comparing XCount or YCount to thevalues mentioned above. Further, scaler 22 may include processor 14 andinstructions in ROM and/or RAM for scaling, or dividing XCount or YCountby the values mentioned above. Although the above embodiments, asdescribed, represent a signed displacement and scaling factor,respectively, in mantissa and exponent bit fields (a floating pointformat), these values may be represented, and the scaling may beperformed, in various other ways known in the art. In addition to asoftware or firmware implementation of the invention, the invention mayalso be implemented in hardware.

[0046] The present invention has been described in terms of preferredand exemplary embodiments thereof. Numerous other embodiments,modifications and variations within the scope and spirit of the appendedclaims will occur to persons of ordinary skill in the art from a reviewof this disclosure. In the claims, the use of the labels for algorithmvariables appearing in the specification is for convenience and clarityand is not intended to have any limiting effect.

I/We claim:
 1. A method of reporting a movement amount of an operationinstrumentality of a pointing device, the method comprising the stepsof: examining a first value representing the movement amount of theoperation instrumentality of the pointing device in a first direction;determining whether scaling of the first value should be performed basedon the first value, and when scaling is to be performed, performing thesteps of: scaling the first value by a first scaling factor, and settinga first scaling indicator to indicate that the first value is scaled bythe first scaling factor; and outputting reporting information includingthe first value if no scaling has been performed, and in the eventscaling has been performed, outputting the scaled first value and thefirst scaling indicator.
 2. The method of claim 1, further comprising:examining a second value representing a movement amount of the operationinstrumentality of the pointing device in a second direction;determining whether scaling of the second value should be performedbased on the second value, and when scaling is to be performed,performing the steps of: scaling the second value by a second scalingfactor, and setting a second scaling indicator to indicate that thesecond value is scaled by the second scaling factor, wherein the step ofoutputting reporting information further includes outputting reportinginformation including the second value if no scaling has been performed,and in the event scaling has been performed, outputting the scaledsecond value and the second scaling indicator.
 3. The method of claim 1,wherein the step of determining whether scaling of the first valueshould be performed determines whether scaling should be performed basedon a magnitude of the first value and when the magnitude is outside apredetermined range, the scaling and setting steps are performed.
 4. Themethod of claim 2, wherein the step of determining whether scaling ofthe second value should be performed determines whether scaling shouldbe performed based on a magnitude of the second value and when themagnitude is outside a predetermined range, the scaling and settingsteps are performed.
 5. A pointing device comprising: a tracking engineconfigured to track a movement amount of an operation instrumentality ofthe pointing device in a first direction and to indicate the movementamount as a first value; determining means configured to examine thefirst value to determine whether scaling of the first value should beperformed based on the first value; a scaler configured to scale thefirst value by a first scaling factor when the determining meansdetermines that scaling is to be performed; and a position reporterconfigured to report information including the first value if no scalinghas been performed, and in the event scaling has been performed, toreport the scaled first value and a first scaling indicatorcorresponding to the first scaling factor.
 6. The pointing device ofclaim 5, wherein: the determining means is configured to determinewhether a magnitude of the first value is within a predetermined range,and the scaler is configured to scale the first value when thedetermining means determines that the first value is outside thepredetermined range.
 7. The pointing device of claim 5, wherein: thetracking engine is further configured to track a movement amount of anoperation instrumentality of the pointing device in a second directionand to indicate the movement amount as a second value, the determiningmeans is further configured to examine the second value to determinewhether scaling of the second value should be performed based on thesecond value, the scaler is further configured to scale the second valueby a second scaling factor when the determining means determines thatscaling is to be performed, and the position reporter is furtherconfigured to report information including the second value if noscaling has been performed, and in the event scaling has been performed,to report the scaled second value and a second scaling indicatorcorresponding to the second scaling factor.
 8. The pointing device ofclaim 7, wherein: the determining means is configured to determinewhether a magnitude of the second value is within the predeterminedrange, and the scaler is configured to scale the second value when thedetermining means determines that the magnitude of the second value isoutside the predetermined range.
 9. The pointing device of claim 5,wherein the pointing device is a wireless pointing device.
 10. Thepointing device of claim 9, wherein the wireless pointing device is anoptically tracking wireless pointing device.
 11. The pointing device ofclaim 5, wherein: the determining means is configured to determinewhether scaling should be performed, and to select a first scalingfactor from among a plurality of scaling factors, based on a magnitudeof the first value.
 12. The pointing device of claim 11, wherein: thetracking engine is further configured to track a movement amount of anoperation instrumentality of the pointing device in a second directionand to indicate the movement amount as a second value, the determiningmeans is further configured to examine the second value to determinewhether scaling of the second value should be performed based on thesecond value and to select a second scaling factor from among theplurality of scaling factors, based on a magnitude of the second value,the scaler is further configured to scale the second value by the secondscaling factor when the determining means determines that scaling of thesecond value is to be performed, and the position reporter is furtherconfigured to report information including the second value if noscaling has been performed, and in the event scaling has been performed,to report the scaled second value and a second scaling indicatorcorresponding to the second scaling factor.
 13. The pointing device ofclaim 5, wherein: the determining means is configured to determinewhether scaling of the first value should be performed based on whetherthe first value can be represented by a first predetermined number ofbits, and the scaler is configured to scale the first value when thedetermining means determines that the first value cannot be representedby the first predetermined number of bits, the scaler being configuredto scale the first value by the first scaling factor, and to set thefirst scaling indicator to indicate that the first value has been scaledby the first scaling factor.
 14. The pointing device of claim 13,wherein: the tracking engine is further configured to track a movementamount of an operation instrumentality of the pointing device in asecond direction, and to indicate the movement amount as a second value;the determining means is further configured to determine whether scalingof the second value should be performed based on whether the secondvalue can be represented by a second predetermined number of bits, thescaler is configured to scale the second value when the determiningmeans determines that the first value cannot be represented by thesecond predetermined number of bits, the scaler being configured toscale the second value by a second scaling factor, and to set a secondscaling indicator to indicate that the first value has been scaled bythe second scaling factor, and the information that the positionreporter is configured to report includes the second value and thesecond scaling indicator.
 15. A method of reporting a movement amount ofan operation instrumentality of a pointing device, the method comprisingthe steps of: examining a first value representing the movement amountof the operation instrumentality of the pointing device in a firstdirection; determining whether the first value can be represented by afirst predetermined number of bits, and when the first value cannot berepresented by the first predetermined number of bits, performing thesteps of: scaling the first value by a first scaling factor, and settinga first scaling indicator to indicate that the first value is scaled;and outputting reporting information including the first value if noscaling has been performed, and in the event scaling has been performed,outputting the scaled first value and the first scaling indicator. 16.The method of claim 15, further comprising the steps of: examining asecond value representing the movement amount of the operationinstrumentality of the pointing device in a second direction;determining whether the second value can be represented by a secondpredetermined number of bits, and when the second value cannot berepresented by the second predetermined number of bits, performing thesteps of: scaling the second value by a second scaling factor, andsetting a second scaling indicator to indicate that the second value isscaled; and outputting reporting information including the second valueif no scaling has been performed, and in the event scaling has beenperformed, outputting the scaled second value and the second scalingindicator.
 17. A method of reporting a movement amount of an operationinstrumentality of a pointing device, the method comprising: examining afirst value representing the movement amount of the operationinstrumentality of the pointing device in a first direction; determiningwhether the first value can be represented by a first predeterminednumber of bits, and when this first determining step determines that thefirst value can be represented by the first predetermined number ofbits, setting a first scaling indicator to indicate that the first valueis unscaled; when the first value cannot be represented by the firstpredetermined number of bits, performing the steps of: determiningwhether the first value can be represented by a second predeterminednumber of bits, which is different from the first predetermined numberof bits, and when the first value can be represented by the secondpredetermined number of bits, performing the steps of: scaling the firstvalue by a first scaling factor, and setting a first scaling indicatorto indicate that the first value is scaled by the first scaling factor;and when the second determining step determines that the first valuecannot be represented by the second predetermined number of bits,performing the steps of: determining whether the first value can berepresented by a third predetermined number of bits, which is differentfrom the first and the second predetermined number of bits, and when thefirst value can be represented by the third predetermined number ofbits, performing the steps of: scaling the first value by a secondscaling factor, and setting the first scaling indicator to indicate thatthe first value is scaled by the second scaling factor; and outputtingreporting information including the first value if no scaling has beenperformed, and in the event scaling has been performed, outputting thescaled first value and the first scaling indicator.
 18. The method ofclaim 17, further comprising performing, when the third determining stepdetermines that the first value cannot be represented by the thirdpredetermined number of bits, the steps of: scaling the first value by athird scaling factor, and setting the first scaling indicator toindicate that the first value is scaled by the third scaling factor. 19.The method of claim 17, further comprising: examining a second valuerepresenting the movement amount of the operation instrumentality of thepointing device in a second direction; determining whether the secondvalue can be represented by the first predetermined number of bits andwhen this fourth determining step determines that the second value canbe represented by the first predetermined number of bits, setting asecond scaling indicator to indicate that the second value is unscaled;when the second value cannot be represented by the first predeterminednumber of bits, performing the steps of: determining whether the secondvalue can be represented by the second predetermined number of bits andwhen the second value can be represented by the second predeterminednumber of bits, performing the steps of: scaling the second value by thefirst scaling factor, and setting a second scaling indicator to indicatethat the second value is scaled by the first scaling factor; and whenthis fifth determining step determines that the second value cannot berepresented by the second predetermined number of bits, performing thesteps of: determining whether the second value can be represented by thethird predetermined number of bits, and when the second value can berepresented by the third predetermined number of bits, performing thesteps of: scaling the second value by the second scaling factor, andsetting the second scaling indicator to indicate that the second valueis scaled by the second scaling factor; and outputting reportinginformation including the second value if no scaling of the second valuehas been performed, and in the event scaling of the second value hasbeen performed, outputting the scaled second value and the secondscaling indicator.
 20. The method of claim 19, wherein when the sixthdetermining step determines that the second value cannot be representedby the third predetermined number of bits, the steps of scaling thesecond value by a third scaling factor, and setting the second scalingindicator to indicate that the second value is scaled by the thirdscaling factor are performed.
 21. A pointing device comprising: atracking engine configured to track a movement amount of an operationinstrumentality of the pointing device in a first direction and toindicate the movement amount as a first value; a scaler; and determiningmeans for determining whether the first value can be represented by afirst predetermined number of bits, and when the determining meansdetermines that the first value can be represented by the firstpredetermined number of bits, setting a first scaling indicator toindicate that the first value is unscaled; when the first value cannotbe represented by the first predetermined number of bits, thedetermining means determines whether the first value can be representedby a second predetermined number of bits, which is different from thefirst predetermined number of bits, and when the first value can berepresented by the second predetermined number of bits, the scaler isconfigured to scale the first value by a first scaling factor, and toset a first scaling indicator to indicate that the first value is scaledby the first scaling factor; and when the determining means determinesthat the first value cannot be represented by the second predeterminednumber of bits, the determining means determines whether the first valuecan be represented by a third predetermined number of bits, which isdifferent from the first and the second predetermined number of bits,and when the first value can be represented by the third predeterminednumber of bits, the scaler is configured to scale the first value by asecond scaling factor, and to set the first scaling indicator toindicate that the first value is scaled by the second scaling factor;and a position reporter configured to report information including thefirst value if no scaling has been performed, and in the event scalinghas been performed, outputting the scaled first value and the firstscaling indicator.
 22. The pointing device of claim 21, wherein when thedetermining means determines that the first value cannot be representedby the third predetermined number of bits the scaler is configured toscale the first value by a third scaling factor, and to set the firstscaling indicator to indicate that the first value is scaled by thethird scaling factor.
 23. The pointing device of claim 21, wherein: thetracking engine is further configured to track a movement amount of anoperation instrumentality of the pointing device in a second directionand to indicate the movement amount as a second value, the determiningmeans is further for determining whether the second value can berepresented by the first predetermined number of bits and when thedetermining means determines that the second value can be represented bythe first predetermined number of bits, setting a second scalingindicator to indicate that the second value is unscaled, when the secondvalue cannot be represented by the first predetermined number of bits,the determining means is further for determining whether the secondvalue can be represented by the second predetermined number of bits, andwhen the second value can be represented by the second predeterminednumber of bits, the scaler is configured to scale the second value bythe first scaling factor, and to set a second scaling indicator toindicate that the second value is scaled by the first scaling factor;and when the determining means determines that the second value cannotbe represented by the second predetermined number of bits, thedetermining means is for determining whether the second value can berepresented by the third predetermined number of bits, and when thesecond value can be represented by the third predetermined number ofbits, the scaler is configured to scale the second value by the secondscaling factor, and to set the second scaling indicator to indicate thatthe second value is scaled by the second scaling factor; and theposition reporter is further configured to reporting informationincluding the second value if no scaling of the second value has beenperformed, and in the event scaling of the second value has beenperformed, outputting the scaled second value and the second scalingindicator.
 24. The pointing device of claim 23, wherein when thedetermining means determines that the second value cannot be representedby the third predetermined number of bits, the scaler is configured toscale the second value by a third scaling factor, and to set the secondscaling indicator to indicate that the second value is scaled by thethird scaling factor.
 25. A pointing device, comprising: a trackingengine configured to track a movement amount of an operationinstrumentality of the pointing device in a first direction and toindicate the movement amount as a first value; determining meansconfigured to determine the smallest of first, second and third rangesof values into which the first value falls, and to set a first scalingindicator to indicate scaling by a first selected scaling factor basedon the determined range if the first value falls into one of the first,the second and the third ranges; a scaler configured to scale the firstvalue by the first selected scaling factor; and a position reporterconfigured to report information including the first value if no scalinghas been performed, and in the event scaling has been performed, toreport the scaled first value and the first scaling indicator.
 26. Thepointing device of claim 25, wherein: the tracking engine is furtherconfigured to track a movement amount of an operation instrumentality ofthe pointing device in a second direction and to indicate the movementamount as a second value, the determining means is further configured todetermine the smallest of the first, the second and the third ranges ofvalues into which the second value falls, and to set a second scalingindicator to indicate scaling by a second selected scaling factor basedon the determined range if the second value falls into one of the first,the second and the third ranges, the scaler is further configured toscale the second value by the second selected scaling factor, and theposition reporter is further configured to report information includingthe second value if no scaling of the second value has been performed,and in the event scaling of the second value has been performed, toreport the scaled second value and the second scaling indicator.